package com.ktwlsoft.archivemanage.payload.account;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@ApiModel("账户信息新增")
@Getter
@Setter
public class AccountInfoAddRequest {
    /**用户账号(不可重复)**/
    @ApiModelProperty("用户账号(不可重复)")
    @Size(max = 30, message = "用户账号参数超长")
    @NotNull(message = "用户账号不能为空")
    private String userName;

    /**真实姓名**/
    @ApiModelProperty("真实姓名")
    @Size(max = 30, message = "真实姓名参数超长")
    @NotNull(message = "真实姓名不能为空")
    private String realName;

    /**手机号码(不可重复)**/
    @ApiModelProperty("手机号码(不可重复)")
    @Size(max = 30, message = "手机号码参数超长")
    @NotNull(message = "手机号码不能为空")
    private String teleNum;

    /**性别(1为男性，0为女性)**/
    @ApiModelProperty("性别(1为男性，0为女性)")
    private Boolean sex;

    /**邮箱(不可重复)**/
    @ApiModelProperty("邮箱(不可重复)")
    @Size(max = 50, message = "邮箱(不可重复)参数超长")
    private String email;

    /**角色Id**/
    @ApiModelProperty("角色Id")
    @NotNull(message = "角色Id不能为空")
    private Long roleId;

    /**角色名称**/
    @ApiModelProperty("角色名称")
    @Size(max = 30, message = "角色名称参数超长")
    @NotNull(message = "角色名称不能为空")
    private String roleName;

    /**部门id**/
    @ApiModelProperty("部门id")
    private Long departmentId;

    /**部门名称**/
    @ApiModelProperty("部门名称")
    @Size(max = 30, message = "部门名称参数超长")
    private String departmentName;

    /**账号状态(1启用，0禁用)**/
    @ApiModelProperty("账号状态(1启用，0禁用)")
    @NotNull(message = "账号状态不能为空")
    private Boolean enable;

    /**证件类型(IDCARD:身份证)**/
    @ApiModelProperty("证件类型(IDCARD:身份证)")
    @Size(max = 30, message = "证件类型(IDCARD:身份证)参数超长")
    private String identityType;

    /**证件号码**/
    @ApiModelProperty("证件号码")
    @Size(max = 50, message = "证件号码参数超长")
    private String identityNum;

    /**备注**/
    @ApiModelProperty("备注")
    @Size(max = 100, message = "备注参数超长")
    private String remark;

    /**密码**/
    @ApiModelProperty("密码")
    @Size(max = 50, message = "密码参数超长")
    private String password;

    /**头像**/
    @ApiModelProperty("头像")
    @Size(max = 100, message = "头像参数超长")
    private String profile;

    /**密码强度**/
    @ApiModelProperty("密码强度")
    @Size(min = 6,message = "密码长度最少为6位")
    private Integer passwordStrength;

    /**头像文件**/
    @ApiModelProperty("头像文件")
    private MultipartFile profileFile;
}
